Generally described, computing devices and communication networks can be utilized to exchange content and other information. In a common application, a computing device can generate content to be distributed to other computing devices via a communication network. For example, a user of a computing device, such as a personal computer, laptop computer, tablet computer, or smart phone, may use the computing device to create content, such as text, documents, audio recordings, video, images, animations, and the like. The content may be transmitted directly to other users' computing devices, or the content may be transmitted to a network-accessible content server for distribution to other users' computing devices.
In some scenarios, a content server may distribute content to a computing device as a set or “feed” of multiple content items in which a user of the computing device may be interested. The content items may be provided to the user's device in response to a request for the feed. For example, the user's device may establish a connection with the content server and transmit a request to the server over the connection. The user's device may then hold the connection open until either a response is received from the content server (e.g., the feed of content items) or a timeout period expires. Once the response is received or the request “times out,” the connection is typically closed in order to conserve computing resources. When a user wishes to view other content or perform other operations, a new connection is established and the request-response process is repeated as necessary.
Computing devices often maintain caches of received content items so that future requests for the same content items can be fulfilled from the cache, without requiring performance of the request-response process described above. To avoid the retransmission of content items that a user's device has already received and cached, a content server may provide the user's device with information regarding the content items associated with a request (e.g., a markup document or list referencing individual files or other objects needed to fulfill the request). The user's device can then look for the referenced objects in the cache. For any objects not in the cache, the user's device can perform the request-response process to obtain the individual objects.
From the perspective of a user requesting and viewing content, a user experience can be defined in terms of the performance and latencies associated with obtaining the content from content servers and displaying the content on the user's device. In this process, a user obtaining content from a content server may have a better experience over a wired network connection or Wi-Fi connection than over slower wireless networks, such as 3G/4G cellular networks.